home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / var / lib / dpkg / info / splix.postinst < prev    next >
Encoding:
Text File  |  2009-04-30  |  3.2 KB  |  80 lines

  1. #! /bin/bash
  2. # postinst script for splix
  3. #
  4. # see: dh_installdeb(1)
  5.  
  6. set -e
  7.  
  8. # summary of how this script can be called:
  9. #        * <postinst> `configure' <most-recently-configured-version>
  10. #        * <old-postinst> `abort-upgrade' <new version>
  11. #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
  12. #          <new-version>
  13. #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
  14. #          <failed-install-package> <version> `removing'
  15. #          <conflicting-package> <version>
  16. # for details, see /usr/doc/packaging-manual/
  17. #
  18. # quoting from the policy:
  19. #     Any necessary prompting should almost always be confined to the
  20. #     post-installation script, and should be protected with a conditional
  21. #     so that unnecessary prompting doesn't happen if a package's
  22. #     installation fails and the `postinst' is called with `abort-upgrade',
  23. #     `abort-remove' or `abort-deconfigure'.
  24.  
  25. #s/^if\s+\[\s+"\$1"\s+=\s+"configure"\s+\];\s+then\s+ldconfig\b//m;
  26.  
  27. if [ "$1" = "configure" ]; then
  28.     # Do the following only if CUPS is running and the needed CUPS tools
  29.     # are available
  30.     if which lpstat > /dev/null 2>&1 && \
  31.     which lpinfo > /dev/null 2>&1 && \
  32.     which lpadmin > /dev/null 2>&1 && \
  33.     lpstat -r > /dev/null 2>&1; then
  34.         # Update the PPD files of all already installed print queues
  35.     driverregexp='lsb/usr/splix/'
  36.     gennicknameregexp='s/,(\s*SpliX|)(\s*V\.?|)\s*[\d\.]*$//i'
  37.     [ ! -z "$gennicknameregexp" ] && \
  38.         gennicknameregexp="; $gennicknameregexp"
  39.     gennicknameregexp='s/\s*\(recommended\)//'"$gennicknameregexp"
  40.     tempfiles=
  41.     trap 'rm -f $tempfiles; exit 0' 0 1 2 13 15
  42.     tmpfile1=`mktemp -t updateppds.XXXXXX`
  43.     tempfiles="$tempfiles $tmpfile1"
  44.     lpinfo -m | grep -E $driverregexp > $tmpfile1
  45.     cd /etc/cups/ppd
  46.     for ppd in *.ppd; do
  47.         [ -r "$ppd" ] || continue
  48.         queue=${ppd%.ppd}
  49.         lpstat -p "$queue" >/dev/null 2>&1 || continue
  50.         nickname=`grep '\*NickName:' "$ppd" | cut -d '"' -f 2 | perl -p -e 's/\n$//' | perl -p -e "$gennicknameregexp" | perl -p -e 's/(\W)/\\\\$1/g'`
  51.         lang=`grep '\*LanguageVersion:' "$ppd" | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
  52.         ppdfound="0"
  53.         englishppduri=""
  54.         tmpfile2=`mktemp -t updateppds.XXXXXX`
  55.         tempfiles="$tempfiles $tmpfile2"
  56.         cat $tmpfile1 | perl -p -e "$gennicknameregexp" | grep -E '^\S+\s+.*'"$nickname"'$' | cut -d ' ' -f 1 > $tmpfile2
  57.         while read newppduri; do
  58.         [ "$ppdfound" = "0" ] && lpadmin -p "$queue" -m $newppduri 2>/dev/null || continue
  59.         newlang=`grep '\*LanguageVersion:' "$ppd" | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
  60.         [ "$newlang" = "$lang" ] && ppdfound="1"
  61.         [ "$newlang" = "english" ] && englishppduri="$newppduri"
  62.         done < $tmpfile2
  63.         [ "$ppdfound" = "0" ] && [ ! -z "$englishppduri" ] && lpadmin -p "$queue" -m $englishppduri 2>/dev/null && ppdfound="1"
  64.         [ "$ppdfound" = "1" ] && echo PPD for printer $queue updated >&2
  65.     done
  66.     fi
  67. elif [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-remove" ] || [ "$1" = "abort-deconfigure" ]; then
  68.     :
  69. else
  70.     echo "postinst called with unknown argument \`$1'" >&2
  71.     exit 0
  72. fi
  73.  
  74. # dh_installdeb will replace this with shell code automatically
  75. # generated by other debhelper scripts.
  76.  
  77.  
  78.  
  79. exit 0
  80.